package com.yidu.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import com.yidu.model.SnFinance;
import com.yidu.model.SnProDetail;

public interface SnFinanceMapper {
    int deleteByPrimaryKey(String finId);

    int insert(SnFinance record);

    int insertSelective(SnFinance record);

    SnFinance selectByPrimaryKey(String finId);

    int updateByPrimaryKeySelective(SnFinance record);

    int updateByPrimaryKey(SnFinance record);
    
    int delete(String braId);
    
	SnFinance selectBraId(String string);

	/**
	 * 修改分公司金额（减少）
	 * @param sum
	 */
	void updateByForenigKey(Map<String, Object> map);

	/**
	 * 修改分公司金额（增加）
	 * @param map
	 */
	void updateById(Map<String, Object> map);

	
	
	/**
	 * 查询所有
	 * @param maps 分页 条件
	 * @return 公司财务model集合
	 */
	List<SnProDetail> findAll(Map<String, Object> maps);
	
	/**
	 * 查询行数
	 * @param maps 条件
	 * @return 行数
	 */
	int findCount(Map<String, Object> maps);
	
	/**
	 * 根据分公司ID增加财务金钱
	 * @param braId 分公司ID
	 * @param moneys 金钱数量
	 * @return rows 行数
	 */
	@Update("update sn_finance set fin_money = fin_money+#{moneys} where bra_id = #{braId}")
	int updateMoney(@Param("braId")String braId, @Param("moneys")double moneys);

	/**
	 *   根据分公司ID减少财务金钱
	 * @param braId 分公司ID
	 * @param moneys 金钱数量
	 * @return rows 行数
	 */
	@Update("update sn_finance set fin_money = fin_money-#{moneys} where bra_id = #{braId}")
	int reduceMoney(@Param("braId")String braId,@Param("moneys")double moneys);

	/**
	 *  通过公司ID查询财务表ID
	 * @param string 分公司ID
	 * @return 财务表ID
	 */
	SnFinance findByFinId(String string);
}